The present invention is related to an improved method and system for receiving selections of inputs required for the execution of a command which acts on an object model in a CAD or similar system
There exist a large number of computer software applications which permit a user to define a two- or three-dimensional object comprised of a number of object features. Such Computer Aided Design (CAD) and other similar systems, such as CAM and CAE systems, display the object model in a editing window and permit the user to select from a number of different commands which act on to modify or create various features in the object model. Many commands will have one or more required inputs which must be specified by the user before the command can be executed and may also have additional, optional inputs which can be specified. For example, a surface can be created using a xe2x80x9csweep functionxe2x80x9d which requires the user to select one curve to serve as a xe2x80x9cspinexe2x80x9d and a second curve to serve as a xe2x80x9cprofilexe2x80x9d which is swept along the spine. Other non-required inputs, such as curves which define additional profiles or guides, can also be specified and are used to vary the manner in which the swept surface is created.
The command specifications to be defined by the user for the various required and optional command inputs require a dialog between the user and the system. In other words, the system must indicate to the user the various inputs which can be specified for the selected command. The user must then select features in the object model, e.g., by mouse clicks, keyboard strokes, or other input mechanisms, indicate which inputs they apply to, and then instruct the application to execute the command using the specified inputs.
When identifying a feature in the object model to use as a parameter for a given command, the system must know both which feature is being selected and which parameter the selected feature applies to. Typically, the user will choose a particular parameter to fulfill, e.g., by selecting that parameter from a pull-down menu, and then select the feature to use in that parameter. The various phases of the parameter specification process are called xe2x80x9ccommand statesxe2x80x9d and, conventionally, the command processing routine is configured to move from one state to the next as the user makes selections for the various command specifications. In addition, certain commands may have required command state sequences which are followed when the command specifications are being entered and further options may be presented to the user to allow for more information to be entered by the user regarding the execution of the command. The list of states for a particular command is a basic characteristic of that command and each command can be viewed as being encoded as particular command state machine within the program""s command processor module. With reference to the sweep example, this command can be implemented, in its simplest form, three command states, one corresponding to a state where the user can specify the profile, a second state where the user can specify a spine, and a third state where the specification is complete and the user can execute the command. More complex commands can have a much larger number of command states.
To aid the user in working through the command specification process, conventional systems employ standard dialog box approach, with or without scrolling menus. When a user selects a command that has a number of options which must be specified, the system displays a selection box which identifies each of the fields and permits the user to fill in various fields with the desire selections. To avoid interfering too much with the object model display, the dimensions of the dialog box must be kept relatively small. As a result, multiple pages of dialog are often required, which pages are typically stacked on each other and must be individually selected by clicking on appropriate buttons or on tabs at the top of the window.
While a dialog box approach is acceptable in some applications, such as word processing applications, in more complex applications, such as computer aided design, this approach suffers from severe drawbacks. One major drawback of conventional dialog boxes used in graphic design applications is that they are generally unrelated to the particular object in the scene. While the specific features which must be selected, such as spine and profile, are generally identified in the dialog, the physical meaning of the various selections is not. Instead, the user is presumed to understand the meaning and purpose of each of the selections which can be made. Although separate help files can be provided by the software manufacturer, they are generally in the form of electronic reference manuals in which the user can look up the meaning of the various inputs. This information is not incorporated in the dialog box itself because the screen space and/or number of dialog box pages required to contain this information is unacceptable to skilled users. Thus, a novice operator entering a command specification may need to access and page through several different help files separate from the dialog box to understand the purpose of the command and the meaning of the various parameters. Similarly, even expert users may need to reference instructional materials when using complex or unfamiliar commands, or when they are familiar with a different software package that provides similar functionality but uses different terminology.
Accordingly, there is a need for an improved method of receiving command specifications from a user which provides a more intuitive and user-friendly interface with the computer system for the selections required in any given situation to complete the command specification in advance of executing the command.
There is a further need for such a system to provide a clear and unambiguous indication of the specifications required by a given command while providing a dialog box that occupies a minimal amount of screen area and overlapping pages.
These and other needs are addressed by a method and system according to the invention in which a traditional dialog box or menu presentation used to solicit command inputs is replaced with a graphical navigation console (or window) showing icons for various command inputs to be provided by the user along with a background sample object showing a schematic representation of the purpose of the command. Each input icon, which can be a pictogram, text, or a combination of both, is positioned adjacent or otherwise associated with one or more sample features in the sample object so that the overall navigation console presents a sample object to which the command has been applied with each suitable input labeled. As a result, the user can quickly and easily determine the various inputs which must be specified to execute the command and the purpose of those inputs relative to the command""s functionality.
The navigation console is not a static display. Instead, it has various active regions, such as the sample features and icons, associated with given command inputs. When an active region in the navigation console is selected, the system automatically shifts the graphic editor""s command processor to a command state in which the user can specify the input associated with the active region, e.g., by selecting or manipulating the primary object or other features or elements in the main object scene. Other manipulations of various aspects in the navigation console are also possible, including moving an icon or feature in the sample model or opening a contextual menu associated with a selected icon or feature.
According to a further aspect of the invention, the system can guide the user in selecting the various parameters for the command by highlighting or otherwise identifying to the user in the navigation console elements in a particular active region, such as the sample features and icon, and placing the command processor in a state to receive a selection for the respective input. When the input definition is provided by the user, the navigation system automatically highlights a region associated with a subsequent command input and places the command processor in an appropriate state to receive a selection for that input.
In situations where command inputs are made by manipulating, as opposed to selecting, an element or feature of the main object, such as an input which requires identification of particular points in the object for reference purposes, a sample icon in the navigation window representative of that option can be selected and xe2x80x9cdraggedxe2x80x9d to the appropriate location on the object in the main screen to activate that feature. In a variation of this configuration, the user can be permitted to slide or drag the representative icon in the navigation window, e.g., along a selected sample curve feature, and the navigation system will translate that action into a corresponding motion of the actual icon along a feature, such as a curve, selected in the main editing system. This is particularly useful when the selected feature may be too complex to directly trace or select various positions in via the main editing screen.
According to yet a further feature, where the selected command permits the user to launch a secondary or sub-command, a contextual menu presented in the navigation console can be provided with options indicating these secondary commands. Upon selection by the user of one of these additional command, the current command can be placed in standby, the selected command launched, and the content of the navigation console subsequently updated to contain the appropriate sample object input with active regions appropriate for the inputs of the newly launched command.
Advantageously, the present invention provides a command navigation tool which can be fully associated and integrated with the standard command processing systems. The user can follow the prompts of the navigation system and select command parameters in a predefined sequence. In addition, the user can directly select a sample parameter in the navigation window, which selection will cause the system to revert to the command state corresponding to the parameter or option selected by the user. By providing such a command navigation tool, novice users can more easily understand and visualize the various parameters and options associated with a selected command and directly select those parameters from within the navigation window.